﻿namespace Lesson8_练习题;

class Program
{
    static void Main(string[] args)
    {
        #region 练习题1
        //使用字典存储0-9的数字对应的大写中文
        //用户输入一个不大于三位数的阿拉伯数字，写一个字典方法，返回对应的大写中文
        //例如 369 返回 叁陆柒
        try
        {
            Console.WriteLine("请用户输入不大于三位数的数字");

            Console.WriteLine(GetInfo(int.Parse(Console.ReadLine())));
        }
        catch
        {
            Console.WriteLine("用户输入错误");
        }
        static string GetInfo(int num)
        {
            Dictionary<int, string> dic = new Dictionary<int, string>();
            dic.Add(0,"零");
            dic.Add(1,"壹");
            dic.Add(2,"贰");
            dic.Add(3,"叁");
            dic.Add(4,"肆");
            dic.Add(5,"伍");
            dic.Add(6,"陆");
            dic.Add(7,"柒");
            dic.Add(8,"捌");
            dic.Add(9,"玖");

            string str = "";
            //得百位
            int b = num / 100;
            if (b != 0)
            {
                str += dic[b];
            }
           
            //得十位
            int c = num % 100 / 10;
            if (str != "" || c != 0)
            {
                str += dic[c];
            }
            
            //得个位
            int d = num % 10;
            str += dic[d];
            return str;
        }

        #endregion
        #region    练习题2
        //计算每个字母出现的次数 "Welcome to Unity World!",使用字典存储，最后遍历字典(不区分大小写），将出现的次数打印出来
        Dictionary<char,int> dic = new Dictionary<char, int>();
        string str = "Welcome to Unity World!";
        str = str.ToLower();
        for (int i = 0; i < str.Length; i++)
        {
            if (dic.ContainsKey(str[i]))    //判断字典中是否包含字符串str中的第i个字母作为键的项
            {
                dic[str[i]] += 1;
            }
            else
            {
                dic.Add(str[i], 1);
            }
        }
        foreach(KeyValuePair<char,int> item in dic)
        {
            Console.WriteLine("字母{0}出现的次数{1}",item.Key,item.Value);
        }
        #endregion
    }
}